package cn.tedu.method;/**
 * @Author 金帮嘉诚 @Date 2021-06-25 星期五 20:40
 */
/*本类用于测试*/

/**知识点
 * 重载：方法名相同，参数列表不同 即构成重载
 * 参数列表不同 ：  参数个数不同一定重载
 * 参数列表相同：   对应位置上参数类型相同
 * */
/*本类用于测试方法的重载*/
public class TestMethodOverload {
    //0.创建程序的入口函数main
    //Ctrl+O大纲
    public static void main(String[] args) {
        /**1.我们根据方法名+参数列表来确定具体调用哪个方法*/
        /**2.方法的重载：
         * 在同一个类中，存在多个名字相同，但参数列表不同的方法
         * f(String a,int b) f(String b,int a)--不构成重载
         * f(String a,int b) f(int a,String b)--构成重载
         * 如果在一个类中存在多个同名方法，方法的参数个数不同，一定构成重载
         * 如果在一个类中存在多个同名方法，方法的参数个数相同，可能构成重载
         * 我们需要查看对应位置上参数的类型，与参数名无关
         * 大家一定注意，方法的重载看的是参数的类型，与参数的名字无关
         * */
        f();
        f(666);//is not applicable for the arguments (int)
        f("皮皮霞",3);
    }
    //	public static void f(String b,int a) {//Duplicate method f(String, int) in type TestMethodOverload
//
//	}
    public static void f(int a,String b) {

    }
    private static void f(String s, int i) {
        System.out.println(s+"今晚干它"+i+"碗大米饭");
    }
    //2.创建一个f(int),含有一个int类型参数的f方法
    private static void f(int i) {
        System.out.println("哈哈哈哈我有参数了："+i);
    }
    //1.创建一个无参的f()方法
    private static void f() {
        System.out.println("哈哈哈哈我没有参数~");
    }

}